﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;

namespace DAO
{
    public class BannerGiaoDienDAO
    {
        public static List<BannerGiaoDienDTO> getAll()
        {
            List<BannerGiaoDienDTO> result = new List<BannerGiaoDienDTO>();
            RaoVatDataContext dbRaoVat = new RaoVatDataContext();

            var query = dbRaoVat.BANNERGIAODIENs.Where(dm => dm.Deleted.Equals(0)).ToList();

            foreach (var ds in query)
            {
                BannerGiaoDienDTO dto = new BannerGiaoDienDTO();

                dto.MaBannerGiaoDien = ds.MaBannerGiaoDien;
                dto.TenBannerGiaoDien = ds.TenBannerGiaoDien;
                dto.DuongDanBannerGiaoDien = ds.DuongDanBannerGiaoDien;                

                result.Add(dto);
            }

            return result;
        }

        public static BannerGiaoDienDTO getAlongCode(int maBanner)
        {
            BannerGiaoDienDTO result = new BannerGiaoDienDTO();
            RaoVatDataContext dbRaoVat = new RaoVatDataContext();

            var query = dbRaoVat.BANNERGIAODIENs.Where(dm => dm.Deleted.Equals(0) &&
                             dm.MaBannerGiaoDien == maBanner).Single();

            result.MaBannerGiaoDien = query.MaBannerGiaoDien;
            result.TenBannerGiaoDien = query.TenBannerGiaoDien;
            result.DuongDanBannerGiaoDien = query.DuongDanBannerGiaoDien;

            return result;
        }

        public static void Insert(BannerGiaoDienDTO _insert)
        {
            RaoVatDataContext dbRaoVat = new RaoVatDataContext();

            BANNERGIAODIEN banner = new BANNERGIAODIEN();            
            banner.TenBannerGiaoDien = _insert.TenBannerGiaoDien;
            banner.DuongDanBannerGiaoDien = _insert.DuongDanBannerGiaoDien;
            banner.Deleted = _insert.Deleted;            

            dbRaoVat.BANNERGIAODIENs.InsertOnSubmit(banner);
            dbRaoVat.SubmitChanges();
        }

        public static void Delete(int maBanner)
        {
            RaoVatDataContext dbRaoVat = new RaoVatDataContext();

            BANNERGIAODIEN _delete = (from n in dbRaoVat.BANNERGIAODIENs
                                   where n.MaBannerGiaoDien == maBanner && n.Deleted == 0
                                   select n).Single();

            _delete.Deleted = 1;
            dbRaoVat.SubmitChanges();
        }

        public static void Update(BannerGiaoDienDTO dto)
        {
            RaoVatDataContext dbRaoVat = new RaoVatDataContext();

            BANNERGIAODIEN _update = (from n in dbRaoVat.BANNERGIAODIENs
                                      where n.MaBannerGiaoDien == dto.MaBannerGiaoDien && n.Deleted == 0
                                      select n).Single();
            
            _update.TenBannerGiaoDien = dto.TenBannerGiaoDien;
            _update.DuongDanBannerGiaoDien = dto.DuongDanBannerGiaoDien;

            dbRaoVat.SubmitChanges();
        }
    }
}
